from pyDes import des, CBC, PAD_PKCS5
import base64

# 密钥（长度必须为8个字节）
KEY = 'qnh12opr'

def des_encrypt(clear_text):
    """
    DES 加密
    :param clear_text: 原始文本
    :return: 加密后的文本，16进制
    """
    secret_key = KEY
    iv = secret_key
    # 创建加密对象
    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
    # 加密
    en = k.encrypt(clear_text, padmode=PAD_PKCS5)
    encrypt_text = base64.b64encode(en)
    return encrypt_text


def des_descrypt(encrypt_text):
    """
    DES 解密
    :param encrypt_text: 加密后的文本，16进制
    :return:  解密后的文本
    """
    secret_key = KEY
    iv = secret_key
    # 创建解密对象
    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
    # 解密
    clear_text = k.decrypt(base64.b64decode(encrypt_text), padmode=PAD_PKCS5)
    # 将bytes类型转换为字符串类型
    clear_text = clear_text.decode('utf-8')
    return clear_text


if __name__ == "__main__":
    a = des_encrypt("123456")
    print("加密后a的值为","\n",a)

    b = des_descrypt("H3krcJYQw4RNN8Y5XWMnQQ==")
    print("解密后b的值为","\n",b)